package com.qc.sys.entity;

import com.google.common.collect.Lists;
import com.qc.common.base.BaseEntity;

import java.util.List;

public class Menu extends BaseEntity{

    /**
     * 菜单树节点ID，默认是10级深度
     */
    private String nodeId;

    /**
     * 节点值，例：100开始
     */
    private Integer nodeValue;

    /**
     * 菜单名称
     */
    private String name;

    /**
     * 菜单链接
     */
    private String href;

    /**
     * 权限对应英文名称
     */
    private String permission;

    /**
     * 图标
     */
    private String icon;

    /**
     * 是否显示 0 显示1不显示
     */
    private String isShow;

    private List<Menu> subMenuList = Lists.newArrayList();
    private String userId; //当前的用户ID
    private String parentId;
    private String parentName = "";
    public static final int nodeLength = 3; //节点值的长度，默认100，长度是3

    public Menu(String id) {
        this.id = id;
    }


    /**
     *
     * @mbggenerated 2017-10-24
     */
    public Menu() {
        super();
    }

    /**
     * 菜单树节点ID，默认是10级深度
     * @return node_id 菜单树节点ID，默认是10级深度
     */
    public String getNodeId() {
        return nodeId;
    }

    /**
     * 菜单树节点ID，默认是10级深度
     * @param nodeId 菜单树节点ID，默认是10级深度
     */
    public void setNodeId(String nodeId) {
        this.nodeId = nodeId == null ? null : nodeId.trim();
    }

    /**
     * 节点值，例：100开始
     * @return node_value 节点值，例：100开始
     */
    public Integer getNodeValue() {
        return nodeValue;
    }

    /**
     * 节点值，例：100开始
     * @param nodeValue 节点值，例：100开始
     */
    public void setNodeValue(Integer nodeValue) {
        this.nodeValue = nodeValue;
        if(parentId==null){
            if(nodeId!=null){
                if(nodeId.equals(String.valueOf(nodeValue))){
                    parentId = "0";
                }else {
                    parentId = nodeId.substring(0,nodeId.length()-nodeLength);
                }
            }
        }
    }

    /**
     * 菜单名称
     * @return name 菜单名称
     */
    public String getName() {
        return name;
    }

    /**
     * 菜单名称
     * @param name 菜单名称
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     * 菜单链接
     * @return href 菜单链接
     */
    public String getHref() {
        return href;
    }

    /**
     * 菜单链接
     * @param href 菜单链接
     */
    public void setHref(String href) {
        this.href = href == null ? null : href.trim();
    }

    /**
     * 权限对应英文名称
     * @return permission 权限对应英文名称
     */
    public String getPermission() {
        return permission;
    }

    /**
     * 权限对应英文名称
     * @param permission 权限对应英文名称
     */
    public void setPermission(String permission) {
        this.permission = permission == null ? null : permission.trim();
    }

    /**
     * 图标
     * @return icon 图标
     */
    public String getIcon() {
        return icon;
    }

    /**
     * 图标
     * @param icon 图标
     */
    public void setIcon(String icon) {
        this.icon = icon == null ? null : icon.trim();
    }

    /**
     * 是否显示 0 显示1不显示
     * @return is_show 是否显示 0 显示1不显示
     */
    public String getIsShow() {
        return isShow;
    }

    public void setIsShow(String isShow){
        this.isShow = isShow;
    }
    public List<Menu> getSubMenuList() {
        return subMenuList;
    }

    public void setSubMenuList(List<Menu> subMenuList) {
        this.subMenuList = subMenuList;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getParentName() {
        return parentName;
    }

    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
}